Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Memory model



  Understanding How is Data Stored in RDBMS

We all know that DBMS (database management system) is used to store (a massive amount of) data. However, have you ever wondered how is data stored in DBMS? In this post, we will focus on data storage in RDBMS, the most traditional relational database systems. Physical Storage Data can be stored in many different kinds of medium or devices, from the fastest but costy registers to the slow but cheap hard drives, or even magnetic tapes. Nowadays, IaaS providers such as AWS...

   RDBMS,DATABASE     2019-02-04 09:25:36

  Programmer professionalism

Programmer is a lifetime occupation. But first, as a programmer you need to love programming, rather than just an occupation to achieve other goals in life.Now if you plan to spend decades of life on programming, then you should continue to think about what is more efficient. In other words, how are you different from who you were a decade ago and how will you be better than who you are now a decade later?In my opinion, a programmer, regardless of his work, should improve himself in three aspect...

   Programmer, Idea     2012-12-10 12:05:24

  Supervisord, God and Monit, which one to choose?

With the popularity of Docker, more and more service have been moved into docker containers and they are easy to build up and maintain for each atomic service(though it's a bit complex to maintain multiple docker containers which contain different service to form a complete solution). Ideally, each docker container should only contain one service which has only one running process. However, in reality there would be cases multiple processes would run in one single docker container and there is a...

   DEVOPS,MONIT,SUPERVISORD,GOD,DOCKER     2017-11-25 12:28:11

  PHP's Output Buffering

While profiling our application I came across a a rather strange memory usage by the ob_start() function. We do use ob_start() quite a bit to defer output of data, which is a common thing in many applications. What was unusual is that 16 calls to ob_start() up chewing through almost 700kb of memory, given that the data being buffered rarely exceeds 1-2kb, this was quite unusual. I started looking at the C code of the ob_start() function and found this interesting bit of code inside php_sta...

   PHP,Memory,ob_start(),source,40kB     2011-12-08 10:20:32

  Microsoft's next generation OS Windows Blue may be free

In PC era, Microsoft is the world's largest software service provider, its revenue  is mainly from selling operating systems and other software services.With the advent of the era of mobile Internet, the free software service concept has been widely accepted, Microsoft has been forced to explore new business models.According to ZDNet, Microsoft's next-generation OS Windows Blue is expected to be released in mid of 2013. The biggest difference between the new version of the OS and the previ...

   Windows Blue, Pirce, Free     2012-11-29 10:54:15

  Why does LinkedIn migrate to NodeJS from Ruby?

Node.js, the server-side JavaScript-based software platform used to build scalable network applications, has been all the rage among many developers for the past couple of years. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Because of these advantages, there are many websites are migrating to Node.js.One of them is LinkedIn. LinkedIn was initially built on Ruby...

   LinkedIn,NodeJS,Ruby     2014-03-21 23:39:25

  The internals of slice in GoLang

There are 3 components of slice:a) Pointer: Points to the start position of slice in the underlying array;b) length (type is int): the number of the valid elements of the slice;b) capacity (type is int): the total number of slots of the slice. Check the following code: package main import ( "fmt" "unsafe" ) func main() { var s1 []int fmt.Println(unsafe.Sizeof(s1)) } The result is 24 on my 64-bit system (The pointer and int both occupy 8 bytes). In the next example, I will use gdb to poke t...

   GOLANG,SLICE     2019-06-30 02:55:22

  Some laws of interactive design

The well known quote from Alan Cooper is   Conforming to the standard unless there is a better choice. There are some best practices in interaction design. How many do you know? 1. Fitts' Law The time from one start point to target point is determined by two parameters: The distance to the target and the size of the target. )D and W in above picture), the formula is : T=a+blog2(D/W+1). It was first proposed by Paul Fitts, it is mathematical model used to predict the time from any poin...

   interaction design, laws, Fitts' law     2012-11-16 11:25:24

  12 useful Chrome commands

Many useful features of Chrome don't show up on its menus. You can access them through the chrome:// command. In this article we will introduce 12 useful chrome:// commands. 1. chrome://flags It can be used to turn on or turn off some chrome features. 2. chrome://dns This command will show the domain name list caught by the browser. 3. chrome://downloads You can access this through chrome menu as well. The shortcut is Ctrl+J 4. chrome://extensions This command equals to Menu->Tools->Ext...

   Chrome,chrome://     2013-01-25 04:38:03

  Different ways to pass query parameters in EmberJS

In EmberJS, one could pass query parameters when retrieving resources with store.query() method. But what if there is a requirement that one wants to pass query parameters when calling store.findRecord()? Or there is a requirement that one wants to pass query parameters to a relationship when calling model.get('hasManyAttribute') in a RESTful style? In this post, we will explain how these can be achieved. In the store.query() case, one could easily pass the query parameters by passing ...

   RELATIONSHIP,EMBERJS,QUERY PARAMETERS     2018-05-18 10:47:56